#include "bsp_74hc154.h"
/***********************************************
函数名称：bsp_74hc154_init
函数参数：无
函数意义：初始化相关的IO口
函数返回ֵ：无
*************************************************/

void bsp_74hc154_init(void)
{
	//A0 A1 A2 A3
	//15 14 10 9
	PINSEL_CFG_Type PinCfg;
	PinCfg.Funcnum = PINSEL_FUNC_0;//默认GPIO功能
	PinCfg.Portnum = PINSEL_PORT_1;
	PinCfg.Pinnum = 9;
	PinCfg.Pinnum = 10;
	PinCfg.Pinnum = 14;
	PinCfg.Pinnum = 15;
	PINSEL_ConfigPin(&PinCfg);
	
	GPIO_SetDir(PINSEL_PORT_1, (1<<9)|(1<<10)|(1<<14)|(1<<15), 1);     
	GPIO_ClearValue(PINSEL_PORT_1,(1<<9)|(1<<10)|(1<<14)|(1<<15));
}


/***********************************************
函数名称：write_74hc154
函数参数：
函数意义：选中路数
函数返回ֵ：无
*************************************************/
void write_74hc154(uint8_t dat)
{
	switch(dat)//此处只有16路，简单点处理，直接switch处理
	{
		case 1:{
			HC154_A0(0);
			HC154_A1(0);
			HC154_A2(0);
			HC154_A3(0);
		}break;
		case 2:{
			HC154_A0(1);
			HC154_A1(0);
			HC154_A2(0);
			HC154_A3(0);
		}break;
		case 3:{
			HC154_A0(0);
			HC154_A1(1);
			HC154_A2(0);
			HC154_A3(0);
		}break;
		case 4:{
			HC154_A0(1);
			HC154_A1(1);
			HC154_A2(0);
			HC154_A3(0);
		}break;
		case 5:{
			HC154_A0(0);
			HC154_A1(0);
			HC154_A2(1);
			HC154_A3(0);
		}break;
		case 6:{
			HC154_A0(1);
			HC154_A1(0);
			HC154_A2(1);
			HC154_A3(0);
		}break;
		case 7:{
			HC154_A0(0);
			HC154_A1(1);
			HC154_A2(1);
			HC154_A3(0);
		}break;
		case 8:{
			HC154_A0(1);
			HC154_A1(1);
			HC154_A2(1);
			HC154_A3(0);
		}break;
		case 9:{
			HC154_A0(0);
			HC154_A1(0);
			HC154_A2(0);
			HC154_A3(1);
		}break;
		case 10:{
			HC154_A0(1);
			HC154_A1(0);
			HC154_A2(0);
			HC154_A3(1);
		}break;
		case 11:{
			HC154_A0(0);
			HC154_A1(1);
			HC154_A2(0);
			HC154_A3(1);
		}break;
		case 12:{
			HC154_A0(1);
			HC154_A1(1);
			HC154_A2(0);
			HC154_A3(1);
		}break;
		case 13:{
			HC154_A0(0);
			HC154_A1(0);
			HC154_A2(1);
			HC154_A3(1);
		}break;
		case 14:{
			HC154_A0(1);
			HC154_A1(0);
			HC154_A2(1);
			HC154_A3(1);
		}break;
		case 15:{
			HC154_A0(0);
			HC154_A1(1);
			HC154_A2(1);
			HC154_A3(1);
		}break;
		case 16:{
			HC154_A0(1);
			HC154_A1(1);
			HC154_A2(1);
			HC154_A3(1);
		}break;
		default:break;	
	}
}
